# -*- coding: utf-8 -*-
# 告诉python解释器，使用utf-8格式解析

# 1. python 基本类型， 整数，浮点，字符串，布尔值，空值

print 45678 + 0x12fd2
print 'learn python'
print  100 < 99
print 0xff == 255

# 2. 变量 通过= 赋值 （动态语言）

a = 123
a = a + 654
print a

# 3. 字符串
# r' 表示无需在转译内容 raw字符串
# ''' 则表示多行, 也可以在前面加r
x = r'\(~_~)/ \(~_~)/'
y = '''
    asdfasfdasdfasdfdasfds
    '''
print y

# 4. python 早期只支持ASCII编码，
# 中文需要加 u'中文' or ur'中文'

print ur'我们的世界'

# 5. 计算
# 一样存在小数计算误差，
# 而且整形算除法时，为保证准确需要转换成浮点

print 2.5 + 10/4

# 6. 布尔类型 True False 注意大写
# 会自动类型转换 --> '' 0 none 都是 False
# 短路运算 ↓
# and --> True and True ==> true
# or --> True or False ==> true
# not --> not True ==> false


# 7. 数组 内置一种数据类型 list
# 使用 l[0] ... IndexError 表示索引超出范围
# l[-1] 表示最后一个 ... 数组可以倒叙访问

print l = ['Michael', 'Bob', 'Tracy']

# 往数组中添加新元素
l.append('cicime')
print l

# 往数组中的某个位置添加
l.insert(1, 'tage')
print l

# 删除最后一个, 并且返回这个元素
l.pop()

# 删除下标为1的元素, 并且返回这个元素
l.pop(1)

# 替换元素
l[-1] = 'this is replaced'


# 8. tuple 元组 一旦创建就不能更改了
# 还能创建单个的 tuple --> t = (1,)

t = ('Adam', 'Lisa', 'Bart')

# 创建可变的 tuple
n = ('a', 'b', ['A', 'B'])
L = n[2]
L[0] = 'x'
